having and where clause difference